package com.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.demo.common.R;
import com.demo.domain.Setmeal;
import com.demo.dto.SetmealDto;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

public interface SetmealService extends IService<Setmeal> {

    /**
     * 分页条件查询所有数据
     * @param page
     * @param pageSize
     * @param name
     * @return
     */
    R<Page> page(int page, int pageSize, String name);

    /**
     * 分页查询   代码优化
     * 多表条件分页查询
     * @param setmealDtoPage
     * @param setmealDto
     */
    void pageByParams(Page<SetmealDto> setmealDtoPage,SetmealDto setmealDto);

    /**
     * 添加套餐数据
     * @param setmealDto
     * @return
     */
    R<String> setmealSave(SetmealDto setmealDto);

    /**
     * 单删和批量删除套餐信息
     * @param ids
     * @return
     */
    R<String> deleteSetmeal(Long[] ids);

    /**
     * 修改套餐状态
     * @param status
     * @param ids
     * @return
     */
    R<String> setmealStatusByStatus(@PathVariable int status, Long[] ids);

    /**
     * 通过id回显数据
     * @param id
     * @return
     */
    R<SetmealDto> querySetmealById(@PathVariable Long id);

    /**
     * 优化代码
     * 一对多查询信息
     * 通过id回显数据
     * @param id
     * @return
     */
    SetmealDto queryById(Long id);


    /**
     * 修改套餐信息
     * @param setmealDto
     * @return
     */
    R<String> editSetmeal( SetmealDto setmealDto);

    /**
     * App端展示套餐信息
     * @param setmeal
     * @return
     */
    R<List<Setmeal>> setmealListApi(Setmeal setmeal);

}
